Copy-protection mechanisms are utilized to inhibit software piracy, which is the creation of unauthorized copies of commercial software. As the market for personal computers, home computers, work stations and intelligent products grows, piracy increasingly becomes a problem. The purpose of a copy-protection mechanism is to deter piracy by making copying of software as difficult as possible. Two basic classes of copy protection mechanisms have evolved to deter piracy, namely, software-based and hardware-key.
Software-based methods encode information on a disk so that conventional copying facilities available in most operating systems cannot accurately copy the information to another disk. The program on the disk checks for this encoded information, and fails to function unless it is there. Copying programs are now commercially available which can successfully copy most disks protected in this manner.
Hardware-key methods rely on the existence of information known as the "key", available to the program, but resident in the system hardware rather than on changeable magnetic medium like the disk. The program checks for the "key" information, and fails to function if the key is not found. Hardware duplication facilities are not commonly found in personal computers, while disk duplication facilities are. This makes hardware keys more costly to duplicate than software, so these methods can be more effective than software-based methods in detering piracy.
One proposed hardware-key method requires that the computer manufacturer install a hardware serial number in each machine as the hardware-key. This method requires every piece of software to be customized to a particular machine. This limits the availability and the interchangeability of software. A second method, currently in use, requires the software user to buy a special piece of hardware with each software product. This piece of hardware provides the key, and it has to be attached to the machine whenever the corresponding software is run, which makes the method unattractive.
In a large part each of the above protection methods is vulnerable to copying of a binary image of the running application from the system working memory, after such key checks have been made.
A number of patents have issued directed to software copy-protection mechanisms, each having certain advantages and disadvantages. Two such patents, U.S. Pat. No. 4,246,638 to Thomas and U.S. Pat. No. 4,168,396 to Best provide a protection mechanism by means which are essentially similar to each other. In both instances, the software package which is to be run on some particular personal computer is customized by the manufacturer to be compatible with the decryption keys and systems built into that particular computer. This is extremely cumbersome and places a large burden on users and vendors alike. The software used in the operation of the apparatus described in these patents causes no changes in structure to take place either in the user's computer or in the distribution disk.
U.S. Pat. No. 4,238,854 to Ehrsam et al addresses itself to a different problem, namely a means by which an encryption/decryption engine may be integrated into a multi-user mainframe computer system to protect a user's files from access by other users. It does not address itself either to the implementation of a distribution channel between software vendors and users of personal computers or to the execution environment for such protected software. It assumes that an operating system or hardware mechanism for provision of levels of privilege already exist in the machine in which this engine is to be installed. This is not the common case in personal computers.
U.S. Pat. No. 3,996,449 to Attanasio et al addresses itself to a problem faced by the operators of large mainframe computers. This problem is "penetration of security" meaning "a successful subversion of the file management component to change the backup copy of the operating system" or "counterfeiting the computer manufacturer's packing and delivery procedure" (for software). Such subversion or counterfeiting is accomplished by a third party who seeks to gain access to confidential files, payroll programs, or other potentially lucrative information or processors by means of features one has installed in the operating system.
U.S. Pat. application Ser. No. 06-567,294 entitled, "A Hardware Key-on-Disk System for Copy-Protecting Magnetic Storage Media", filed Dec. 30, 1983, which application is assigned to the assignee of the subject invention, incorporates the best features of both software based and hardware key methods. A hardware key is encoded directly onto a magnetic medium such as a floppy disk. This key consists of indicia in at least one subsection of at least one section of the disk that are not modifiable by the conventional medium write process. The data read from a section containing indicia differs in a predictable way from the data written to that section. The disk can be authenticated as the original disk by comparing a read-following-write with the expected results of such an operation. The software functions only in the presence of this key, as the key indicates the original medium is present. Software use is thus restricted to those users possessing an original distribution disk. Backup copies are not allowed by this system.
According to the subject invention, a method is set forth which restricts software, distributed on disks, to use on a single machine and allows backup copying. This mechanism involves making the distribution disks functionally uncopyable, until it is modified by the execution of a procedure which requires the cooperation of a co-processor. Upon modification, the software may be copied but can only be used on the machine containing the co-processor which participated in the modification procedure.